home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-09-16 | 76.4 KB | 1,957 lines |
- .TOPIC:
- Contents
-
- Contents
- ThrustMaster Enhanced Editor
- Copyright 1996, ThrustMaster Inc.
-
- Click on a topic:
-
- Using Help
- Introduction
- Editor Commands
- Contacting ThrustMaster
-
- Keyboard Input Keyboard Operation
-
- Frequently Used Programming Commands:
-
- BTN Button Commands
- PORTBx Command Analog Joystick Buttons
- Button Press & Release /P /R Commands
- FLCS BTN S3 In/Out Command /I /O Commands
- Rocker Switch Settings /U /M /D Commands
- /A Force Analog
- /T Toggle
- /N Force Single Character
- /H Hold
- TG1/TG2 F-22 Trigger
- Combinational Keypresses
- Basic Rules For Using Slash Codes
-
-
- MDEF Macro Definition Files @ Special Macro Definitions
- ANT Antenna Knob (TQS) RNG Range Knob (TQS)
- THR Throttle Settings MT Minimum Throttle Setting
- RDDR Digital Rudder RATE Keypress Rate Setting
- RAW Keyboard Scan Codes REM Remark Line
- SWAPTG F-22 Swap Trigger (TG1/TG2)
-
- USE Configuration Statement
-
- TQS WCS MTYPE FCLK NOTHR NOMOUSE XIO
-
-
- JSX JSY Digital Joystick Commands
-
- .TOPIC:
- USING HELP
-
- Selecting a Help link:
- ----------------------
- With a mouse - click on phrases outlined by two triangles. With the
- keyboard - Press TAB or Shift-TAB to select a link. Press ENTER to jump
- to that topic.
-
- Scrolling the Help window:
- --------------------------
- With a mouse - click on the horizontal or vertical scroll bars.
-
- With the keyboard - press the cursor navigation keys.
-
- Closing the Help window:
- ------------------------
- With a mouse - double click on the window's control box icon in the upper
- left corner of the window. With the keyboard - press Ctrl-F4.
-
- Command Buttons:
- ----------------
- Applications may use one or more of the following command buttons. Use a
- mouse to click a button or press the letter mentioned below.
-
- Contents - displays a table of contents for the application's Help. Press
- C to select Contents.
-
- Search - opens a dialog box that lists all available Help topics. Select
- a topic from the list box and press ENTER. Press S to select Search.
-
- Back - jumps to the last Help topic viewed. Press B to select Back.
-
- History - lists the last 20 Help topics viewed. Jump to a topic by
- selecting from the list box and pressing ENTER. Press T to select
- History.
-
- Copy - copy the current topic or a portion of the current topic to the
- clipboard. You can then exit help and paste the contents of the clipboard
- into your program file.
-
- Print - print the current topic or a portion thereof to your printer or a
- file.
-
- .TOPIC:
- Editor Commands
- Editor Commands:
-
- The following keys are used in the enhanced editor to help you during
- the preparation of a new program file or to modify an existing file:
-
- ESC - Exit and return to the main menu
- BSP - Erase character directly to left of cursor
- F10 - Modify editor screen colors
- Ctrl-LeftArrow - Move to the first character of the word to the left
- of the cursor
- Ctrl-RightArrow - Move to the first character of the word to the right
- of the cursor
- Ctrl-Y - Delete the entire line
- Ctrl-HOME - Move to the first character at the top of the file
- Ctrl-END - Move to the last character at the end of the file
- PGUP - Move up one page
- PGDN - Move down one page
- INS - Toggle between insert and overwrite modes
- DEL - Delete the character at the cursor
- Shift-END - Highlight the current line from the cursor position
- to the rightmost character
- Shift-UpArrow - Highlight from the current line upward
- Shift-DownArrow - Highlight from the current line downward
- Ctl-X - Cut (delete) the highlighted portion of text to memory
- Ctl-C - Copy the highlighted portion of text to memory
- Ctl-V - Paste the most recently deleted or copied portion of text from
- memory to the current document
-
- .TOPIC:
- PORTBx Command
- PORTBx Command:
-
- Joystick button inputs - default setup:
-
- Joystick buttons 1 - 4 can be mapped to any button or hat switch on the
- F-22 using the PORTBx IS Button_Label command (see the table below).
-
- While in the F-22 Editor, type in the joystick port label corresponding to
- the joystick button you wish to assign followed by the name of the F-22
- button label.
-
- Command Format:
-
- Port_Label IS F22_Button_Label
-
- Where:
-
- Port_Label Button Seen By Game Typical F22_Button_Label
-
- PORTB1 joystick button 1 TG1
- PORTB2 joystick button 2 S2
- PORTB3 joystick button 3 S3
- PORTB4 joystick button 4 S4
-
- Example:
-
- PORTB1 IS TG1
-
- .TOPIC:
- TQS
- Command: USE TQS
-
- Device: TQS Throttle Quadrant System
-
- Purpose: Defines the throttle device in your program file as the F16 TQS.
-
- The "USE TQS" statement serves the same basic function as the USE WCS
- statement, i.e., it defines the type of throttle device you are using.
- The "USE TQS" statement should be entered on its own line near the top of
- your program file. Do not put "USE TQS" and "USE WCS" in the same program
- file.
-
- .TOPIC:
- WCS
- Command: USE WCS
-
- Device: WCS Mark II Weapons Control System Throttle Device
-
- Purpose: Defines the throttle device in your program file as the WCS Mark
- II.
-
- The "USE WCS" statement serves the same basic function as the USE TQS
- statement, i.e., it defines the type of throttle device you are using.
- The "USE WCS" statement should be entered on its own line near the top of
- your program file. Do not put "USE WCS" and "USE TQS" in the same program
- file.
-
- .TOPIC:
- XIO
- Command: USE XIO
-
- Device: F-22 With Mini-Cockpit
-
- The "USE XIO" statement should be entered on its own line near the
- top of your program (F22) file. This program command is used to tell your
- program file to accept commands for the mini-cockpit device.
-
- .TOPIC:
- MTYPE
- Command: USE MTYPE Type
-
- Where: Type = one of the available codes for two-button and three-button
- mice.
-
- Device: Used with the F-16 TQS (Throttle Quadrant System).
-
- The "USE MTYPE Type" statement should be entered on its own line near the
- top of your program (F22) file. Available designations for the "Type"
- statement are:
-
- Standard Mouse Button
- Type Left Middle Right
- ------------------------------
- 2-Button Microsoft Type Mouse
- ------------------------------
- A1 T1 n/a T6
- A2 T6 n/a T1
- A3 T1 n/a n/a
- A4 T6 n/a n/a
- A5 n/a n/a n/a
- ------------------------------
- 3-Button (Mouse Systems) Mouse
- ------------------------------
- B1 T1 T6 n/a
- B2 T6 T1 n/a
- B3 T1 n/a n/a
- B4 T6 n/a n/a
- B5 n/a n/a n/a
- B6 T1 T6 T3
- B7 T6 T1 T3
- B8 T1 n/a T3
- B9 T6 n/a T3
- B10 n/a n/a T3
- -----------------------------
- 3-Button Logitech Type Mouse
- -----------------------------
- C1 T1 T6 n/a
- C2 T6 T1 n/a
- C3 T1 n/a n/a
- C4 T6 n/a n/a
- C5 n/a n/a n/a
- C6 T1 T6 T3
- C7 T6 T1 T3
- C8 T1 n/a T3
- C9 T6 n/a T3
- C10 n/a n/a T3
- -----------------------------
- Disable Mouse
- -----------------------------
- NONE n/a n/a n/a
- -----------------------------
-
- For example, to create a Microsoft-type mouse that assigns the left
- mouse-button to button T1 on the TQS and the right mouse-button to button
- T6 on the TQS, type in the following line in your program (F22) file:
-
- USE MTYPE A1
-
- .TOPIC:
- @
- Command: @MacroName
-
- Purpose: Special Macro Definition:
-
- Special macros are normally preceded with the '@' character. These macros
- can be used to combine logical groupings of commands, e.g., throttle
- commands or hat switch commands. The best way to familiarize yourself
- with a special macro is to examine one. The following example describes a
- special macro for the hat switch views on your FCS or PFCS:
-
- @StandardViews = HU UAROW HL LAROW HR RAROW HD DAROW
-
- By using the @StandardViews macro in your M22 or MDF file you eliminate
- the need to specify the keypress associated with each position of the hat
- switch on your FCS or PFCS. GAME and THR commands can be similarly
- combined or grouped to specify analog or digital throttle commands.
-
-
- .TOPIC:
- MDEF
- Command: MDEF Filename
-
- Purpose: Macro Definition File Command
-
- Macro definition (.M22 or .MDF extension) files allow the user to define
- named macros which can then be referenced in program F22 or ADV files,
- respectively. The macro definition file must be in the same directory as
- the program file. More than one MDEF statement can be included in a F22
- or ADV file, the only limitation being that the total number of macros
- defined does not exceed 400. Each line in the macro file normally
- contains an entry of the form:
-
- Macroname = Macro Body
-
- It may also include REM statements and other format lines (e.g., the
- tilde (~) character is used by the original Command & Control Center
- program for formatting purposes). The macro name can be any continuous
- group of characters. Spaces and Tab characters may not be used. Although
- macro names may be any length, only the first 16 characters are
- significant. Macros can be used in a variety of ways. The simplest way
- is to name a key with its function, e.g., 'FlapsUp = u'. This would allow
- you to assign the flaps up function in your .F22 or .ADV program file by
- adding the following BTN line:
-
- 'BTN 1 FlapsUp'.
-
- NOTE: The macro definition file extension (either .M22 or .MDF) is always
- added by the compiler.
-
- .TOPIC:
- FCLK
- Command: USE FCLK
-
- Device: F-22 (alone or with MK2 or TQS throttle)
-
- Purpose: This instruction tells the F-22 to base its character timing on
- the frame rate of the simulator. This is useful for sims which only allow
- one character code per frame which helps to keep the throttle and other
- characters synchronized with the simulation.
-
- The characters will be clocked out of the F-22 at the rate of one per
- frame. If an FCLK input is not seen by the F-22 processor for a period of
- approximately 3 seconds, the F-22 will revert to normal operation, basing
- its character timing on the RATE parameter. FCLK operation will resume
- once the processor sees the FCLK signals again.
-
- .TOPIC:
- NOTHR
- Command: USE NOTHR
-
- Device: F-16 Throttle Quadrant System (TQS)
-
- Purpose: This instruction is used to force the TQS into analog throttle
- mode, thereby disabling digital throttle communication.
-
- The USE NOTHR statement should be entered on its own line near the top
- of your program (F22) file.
-
-
- .TOPIC:
- USE
- Command: USE DeviceSetting
-
- Where DeviceSetting = WCS, FCLK, TQS, MTYPE, NOTHR, XIO
-
- Purpose: Program (F22 File) Configuration Statement
-
- Equipment setup can be varied, depending on the specific ThrustMaster gear
- installed. 'USE WCS' indicates that you are using the Mark II throttle.
- 'USE FCLK' tells the F-22 flight stick to base its character timing on the
- frame rate of the simulator in use. 'USE XIO' instructs the F-22 to
- include the additional mini-cockpit inputs. 'USE TQS' tells the F-22 to
- include the TQS throttle registers so it can get information on the
- throttle, trackball, and T1-T14 buttons on the TQS.
-
- With the TQS, you can also include the 'USE MTYPE A1-A5, or B1-B10'
- statement, which allows TQS buttons T1 and T6 to emulate the left and
- right buttons on your mouse. Button T3 on the TQS can be used to emulate
- the middle mouse button, if your mouse driver supports three-button
- operation. MTYPE settings A1-A5 should be used to specify a Microsoft
- two-button mouse format. MTYPE settings B1-B10 should be used to specify
- a Logitech three-button mouse format.
-
-
- .TOPIC:
- MT
- Command: BTN MT Setting
-
- Where Setting = MacroName or Keypress Sequence
-
- Device: TQS Throttle w/F-22, or Mark II Throttle with F-22
-
- Purpose: Assigns character generation to the minimum throttle position.
-
- See also THR Throttle Command
-
- MT is treated just like any button, even though it is actually a throttle
- position. Minimum throttle is that small region between the idle detente
- (the first notch) and full off. MT types any assigned character only
- once (you could say it has a built-in /N modifier). If continuous
- output is desired, use the button modifiers () and {}. Moving the
- throttle from the full off position to idle detente acts like "releasing"
- the MT switch.
-
- MT cannot be used with the slash codes /T, Rocker Switch Settings.
-
- MT operates only when the throttle is defined for digital operation. MT
- also must be placed after the THR line or @DigitalThrottle line.
-
- .TOPIC:
- JSX
- Joystick X-Axis Input
-
- Device: F-22 and FLCS
-
- Purpose: Assigns character generation (type 1, 2, or 3) to the joystick
- x-axis (the left-right motion of the joystick)
-
- See also JSY Command
-
- Type 1 Device:
-
- Use: JSX 1 #steps StepUpCharacter StepDownCharacter CenterCharacter
-
- JSX as a type 1 device follows the same format as type 1 ANT.
-
- Type 2 Device:
-
- Use: JSX 2 #steps FullUpCharacter....CenterCharacter....FullDownCharacter
-
- JSX as a type 2 device follows the same format as type 2 ANT.
-
- Type 3 Analog Device:
-
- Use: JSX 3 LeftCharacter CenterCharacter RightCharacter
-
- JSX type 3 follows the format for a basic type 3 device. The left and
- right characters will be generated continuously, while the center
- character will be sent only once.
-
- NOTE: NO SLASH CODES OR BUTTON MODIFIERS (/N, /H, etc.) CAN BE USED WITH
- THE JSX STATEMENT.
-
- Calibration is required for the joystick to be used in digital mode. This
- can only be done after the JSX statement has been downloaded to the F-22.
- If no JSX statement is used in the download file, the F-22 defaults to
- analog mode.
-
- .TOPIC:
- JSY
- Joystick Y-Axis Input
-
- Device: F-22 and FLCS
-
- Purpose: Assigns character generation (type 1, 2, or 3) to the joystick
- x-axis (the forward-backward motion of the joystick)
-
- See also JSX Command
-
- Type 1 Device:
-
- Use: JSY 1 #steps StepUpCharacter StepDownCharacter CenterCharacter
-
- JSY as a type 1 device follows the same format as type 1 ANT.
-
- Type 2 Device:
-
- Use: JSY 2 #steps FullUpCharacter....CenterCharacter....FullDownCharacter
-
- JSY as a type 2 device follows the same format as type 2 ANT.
-
- Type 3 Analog Device:
-
- Use: JSY 3 LeftCharacter CenterCharacter RightCharacter
-
- JSY type 3 follows the format for a basic type 3 device. The left and
- right characters will be generated continuously, while the center
- character will be sent only once.
-
- NOTE: NO SLASH CODES OR BUTTON MODIFIERS (/N, /H, etc.) CAN BE USED WITH
- THE JSY STATEMENT.
-
- Calibration is required for the joystick to be used in digital mode. This
- can only be done after the JSY statement has been downloaded to the F-22.
- If no JSY statement is used in the download file, the F-22 defaults to
- analog mode.
-
- .TOPIC:
- ANT
- Antenna Knob Command: ANT Setting
-
- Device: TQS Only
-
- Purpose: Assigns character generation (type 1 or 2) to antenna knob
- rotation.
-
- Type 1 Device:
-
- Use: ANT 1 #steps StepUpCharacter StepDownCharacter CenterCharacter
-
- ANT follows the basic format for a type 1 device, requiring up and down
- (or increase and decrease) characters. It also has a center character for
- use in game or simulator commands having a centering function. If the
- center character is not needed, simply insert an unused keystroke (! is
- used here):
-
- Example: ANT 1 3 U D !
-
- The "U" is the StepUpCharacter, with "D" playing the role of the
- SteDownCharacter. #steps defines that 3 characters will be typed on
- either side of the center position as the knob is moved stop-to-stop.
-
-
- Type 2 Device:
-
- Use: ANT 2 #steps FullUpCharacter....CenterCharacter....FullDownCharacter
-
- As a type 2 device, you need to define a character for each end-of-travel,
- all the characters to use in between, a center character, and the total
- number of characters, which must be an odd number.
-
-
- NOTE: NO SLASH CODES OR BUTTON MODIFIERS (/N, /H, etc.) CAN BE USED WITH
- THE ANT STATEMENT.
-
- .TOPIC:
- RNG
- Range Knob Command: RNG Setting
-
- Device: TQS Only
-
- Purpose: Assigns character generation (type 1 or 2) to range knob
- rotation.
-
- Type 1 Device:
-
- Use: RNG 1 #steps StepUpCharacter StepDownCharacter
-
- RNG requires up and down characters (or increase and decrease characters),
- and the number of characters (#steps) to type to the computer as the knob
- is moved from stop-to-stop.
-
- Type 2 Device:
-
- Use: RNG 2 #steps FullUpCharacter....FullDownCharacter
-
- A type 2 RNG statement needs a character for each end-of-travel, all the
- characters to use in between, and the total number (#steps) of characters
- needed.
-
-
- NOTE: NO SLASH CODES OR BUTTON MODIFIERS (/N, /H, etc.) CAN BE USED WITH
- THE RNG STATEMENT.
-
- .TOPIC:
- RDDR
- Rudder Command: RDDR Setting
-
- Device: Used with F-22 or FLCS and TQS with a rudder control
- system (RCS)
-
- Purpose: Assigns character generation (type 1, 2, or 3) to the RCS
-
- Type 1 Device:
-
- Use: RDDR 1 #steps RudderLeftChar RudderRightChar CenterCharacter
-
- Type 2 Device:
-
- Use: RDDR 2 #steps FullLeftChar....CenterChar....FullRightChar
-
- Type 3 Device:
-
- Use: RDDR 3 LeftCharacter CenterCharacter RightCharacter
-
- NOTE: NO SLASH CODES OR BUTTON MODIFIERS (/N, /H, etc.) CAN BE USED WITH
- THE RDDR STATEMENT.
-
- Calibration Required: Calibration is required for the rudders to work
- properly in digital mode. Download a file containing the RDDR statement,
- and then run the calibration utility (F22SETUP.EXE). Select the rudder
- calibration option.
-
- .TOPIC:
- Keyboard Input
-
- See also BTN Commands Keyboard Operation
-
- Program and macro files contain special instructions which tell your
- computer what character or keypress to generate when you press each button
- or hat-switch on your throttle and stick.
-
- Many of the keys on a normal AT-style keyboard generate scan codes when
- pressed that do not translate into visible characters on your screen. For
- example, at the DOS prompt, try pressing the function keys at the top of
- your keyboard (keys F1 - F12). You won't see anything on the screen but
- the computer "sees" each keypress because of the unique scan code it
- generates. The following keyboard template shows the special designations
- that are used in your program and macro files to represent the keys on a
- standard AT-style keyboard:
-
- ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 SCRLCK
- ` 1 2 3 4 5 6 7 8 9 0 - = BSP AUXINS AUXHOME AUXPGUP NUML KP/ KP* KP-
- TAB q w e r t y u i o p [ ] \ AUXDEL AUXEND AUXPGDN KP7 KP8 KP9 KP+
- CAPS a s d f g h j k l ; ' ENT KP4 KP5 KP6
- LSFT z x c v b n m , . / RSFT AUXUAROW KP1 KP2 KP3
- LCTL LALT SPC RALT RCTL AUXLAROW AUXDAROW AUXRAROW KP0 KP. KPENT
-
- Combinational Keypresses, e.g., CTL x SHF x ALT x
-
- For example, if you want to instruct or program button S1 on your F-22 to
- generate the "Backspace" character every time it is pressed, you would add
- the following line to your program (F22) file:
-
- BTN S1 BSP
- .TOPIC:
- Keyboard Operation
-
- See also BTN Commands Keyboard Input
-
- Programming your throttle or joystick to perform a particular function is
- basically a matter of getting it to send the right sequence of key codes
- to the PC.
-
- The keyboard operates by sending 'Make' and 'Break' codes to the PC. These
- 'codes' are sequences of one or more data bytes. They are not 'ASCII
- Characters', but just indicate which keys have been moved. When you press
- a key, the 'Make' code is sent. When you release the key, the 'Break' code
- is sent. Each key on the keyboard has a unique sequence of codes assigned
- to it for its 'Make' and 'Break' sequences.
-
- The PC can't actually determine whether a key is pressed or released at
- any particular time. Rather, it simply keeps track of the 'Make' and
- 'Break' codes. When it receives a 'Make' code, it flags the key as pressed
- until it receives the corresponding 'Break' code, at which time it flags
- the key as released.
-
- Since the sequencing of the 'Make' and 'Break' codes is important to the
- discussion of button commands and Combinational Keypresses, it will be
- convenient to adopt some notation for them. The '+' character will be used
- to indicate the 'Make' code for a key, and the '-' character will be used
- to indicate the 'Break' code. For instance: +a -a would indicate the press
- and subsequent release of the 'a' key.
-
- .TOPIC:
- RATE
- Rate Command: RATE ####
-
- Where: #### is a number between 0 and 1000
-
- Device: F-22 or FLCS with TQS or Mark II Throttle
-
- RATE is the speed at which your equipment generates keyboard characters.
- These characters are then stored in the keyboard buffers. Rate settings
- are defined in milliseconds. For example, a rate setting of 20 would
- generate characters quickly, while a rate setting of 1000 (1000ms=1sec)
- would generate characters very slowly (for a computer). Begin by setting
- the RATE at 100, then adjust the setting up/down according to how your
- game performs.
-
- NOTE: Some game software programs read keyboard buffer information very
- slowly. While playing "Wing Commander" for example, you push the MARK II
- WCS throttle forward to full power and it should generate 50 throttle
- increase characters. However, during this time "Wing Commander" is busy
- executing graphics or sound. As a result, you lose characters because the
- buffers were full and your computer (controlled by your game software) may
- have read only half the characters generated during the throttle increase.
- You're at half throttle! If you find yourself in a situation where you
- are losing characters, adjusting the rate setting may be the solution to
- enhancing your game play. Enter the RATE setting by placing the cursor one
- space to the right of RATE on the template and type in 100.
-
-
- .TOPIC:
- REM
- Remark Command: REM
-
- Game program files often contain lines that start with or contain the word
- "REM". "REM" is short for "REMARK". The REM command is useful when you
- need to place comments in your file for the sake of explaining things.
- Any characters or text that follow the REM command are ignored as program
- instructions.
-
- All comment lines (which could include the name of the game and the
- manufacturer's name, the author's name, the date the file was
- created/modified etc.) must start with a "REM" statement.
-
- Example:
-
- REM Sabre Jet Fighter
- REM By Combat Simulations, Inc.
- REM F22 file created by John Doe
-
- .TOPIC:
- THR
- Throttle Input
-
- Device: TQS or WCS Mark II Throttle
-
- Purpose: Assigns character generation (type 1 or 2) to the throttle
-
- See also MT Minimum Throttle Command
-
- NOTE: Omit or place REM in front of the throttle statement in your F22 or
- B50 file in order for the throttle device to be recognized as an analog
- device.
-
- Type 1 Device:
-
- Use: THR 1 #Steps #ABSteps ThrUp ThrDown ABEntry ABExit APUp ABDown
-
- Type 2 Device:
-
- Use: THR 2 #Steps #ABSteps ThrottleIdle...ThrottleMax MinAB...MaxAB
-
-
- Type 1 Throttle Statement:
-
- The Type 1 throttle statement defines the keyboard output for throttle
- movement between idle and MIL detents and the afterburner action (the
- range between MIL detente and full-forward). In order to use a Type 1
- throttle statement you will need to know the throttle increase and
- decrease characters, and the number of steps it takes to go from idle to
- full throttle (not including afterburner or full power, if your simulation
- has commands for this).
-
- As an example, let's assume that the throttle increase and decrease
- characters are + and -, respectively, and the simulation uses a maximum of
- 10 keystrokes to go from idle detent to full power (or back again). So,
- for the initial portion of the throttle statement, we have:
-
- #Steps = 10
- ThrUp = +
- ThrDown = -
-
- Now for the afterburner portion of the throttle statement. Simulations
- handle the afterburner in a variety of ways:
-
- Case 1. There is NO afterburner or full power command, only the
- throttle increase keys.
- Case 2. There ARE afterburner or full power keystrokes.
- Case 3. There are keystrokes to get in and out of afterburner, AND
- increase/decrease keys for the afterburner.
-
- In the first case above, make the afterburner "look like" a normal
- throttle increase or decrease:
-
- #ABSteps = 2
- ABEntry = +
- ABExit = -
- ABUp = +
- ABDown = -
-
- If you set up your throttle like this, consider reducing the number of
- throttle steps (#Steps) so that full power is only reached at or past the
- MIL detent position (i.e., change #Steps above from 10 to 8, since we've
- defined 2 AB steps). Putting everything together, our Type 1 throttle
- statement for case 1 above should look like this:
-
- THR 1 8 2 + - + - + -
- │ │ │ │ │ │ │ │ │
- Type─────┘ │ │ │ │ │ │ │ └─────ABDown
- #Steps─────┘ │ │ │ │ │ └─────────ABUp
- #ABSteps─────┘ │ │ │ └─────────ABExit
- ThrUp──────────┘ │ └──────────ABEntry
- ThrDown──────────┘
-
- For the second situation (case 2), let's assume our simulation uses
- keystrokes for turning full power on and off. Let's say the commands are
- : for on and ; for off. One possibility is:
-
- #ABSteps = 2
- ABEntry = +
- ABExit = -
- ABUp = :
- ABDown = ;
-
- By using the : and ; characters for ABUp and ABDown, the MIL detent will
- let your hand "know" that you're at maximum throttle without going to
- afterburner. You have to push the throttle past the detent position to
- kick in the afterburner. Our case 2 throttle statement would look like
- this:
-
- THR 1 10 2 + - + - : ;
- │ │ │ │ │ │ │ │ │
- Type─────┘ │ │ │ │ │ │ │ └─────ABDown
- #Steps──────┘ │ │ │ │ │ └─────────ABUp
- #ABSteps──────┘ │ │ │ └─────────ABExit
- ThrUp───────────┘ │ └──────────ABEntry
- ThrDown───────────┘
-
- For the third possibility (case 3), let's assume that : and ; are used to
- turn the afterburner on and off, but > and < are used for afterburner
- increase and decrease, respectively. Let's also assume that the game
- allows the afterburners to be increased 3 times (using 3 keypresses, of
- course). Therefore we have:
-
- #ABSteps = 3
- ABEntry = :
- ABExit = -
- ABUp = >
- ABDown = <
-
- Our case 3 throttle statement would look like this:
-
- THR 1 10 2 + - : ; > <
- │ │ │ │ │ │ │ │ │
- Type─────┘ │ │ │ │ │ │ │ └─────ABDown
- #Steps──────┘ │ │ │ │ │ └─────────ABUp
- #ABSteps──────┘ │ │ │ └─────────ABExit
- ThrUp───────────┘ │ └──────────ABEntry
- ThrDown───────────┘
-
-
- Type 2 Throttle Statement:
-
- Use: THR 2 #Steps #ABSteps ThrottleIdle...ThrottleMax MinAB...MaxAB
-
- Like a Type 1 throttle statement, the Type 2 throttle statement defines
- the keyboard output for throttle movement between idle and MIL detents and
- the afterburner action. If a simulation gives a throttle 6 levels of
- power and uses keys 1-6, but no afterburner, then the throttle information
- could look like this:
-
- #Steps = 5
- #ABSteps = 1
- ThrottleIdle...ThrottleMax = 1 2 3 4 5
- MinAB...MaxAB = 6
-
- This puts the maximum throttle setting in the afterburner position. The
- resulting THR 2 statement would look like this:
-
- THR 2 5 1 1 2 3 4 5 6
- │ │ │ └───┬───┘ │
- Type─────┘ │ │ │ └───────────────MinAB...MaxAB
- #Steps─────┘ │ └────────ThrottleIdle...ThrottleMax
- #ABSteps─────┘
-
- Now assume the simulation still has 6 different power levels, but included
- 2 afterburner levels using & and *. The throttle information would look
- like this:
-
- #Steps = 6
- #ABSteps = 2
- ThrottleIdle...ThrottleMax = 1 2 3 4 5 6
- MinAB...MaxAB = & *
-
- The THR 2 statement would look like this:
-
- THR 2 6 2 1 2 3 4 5 6 & *
- │ │ │ └───┬─────┘ ├─┘
- Type─────┘ │ │ │ └─────────────MinAB...MaxAB
- #Steps─────┘ │ └────────ThrottleIdle...ThrottleMax
- #ABSteps─────┘
-
-
- .TOPIC:
- BTN
- Button Command: BTN MacroName or KeySequence
-
- See also Combinational Keypresses Keyboard Input
-
- Purpose: Assigns a button on your throttle or stick device to generate
- single or multiple keyboard characters (either directly or indirectly
- through a macro.)
-
- Example 1: BTN T3 R
-
- The character "R" is typed to the computer when button T3 on the throttle
- controller is pressed.
-
-
- Example 2: BTN H1U A B C
-
- The character sequence "A B C" is typed to the computer when you press hat
- switch 1 up on your F-22 flight stick.
-
-
- Example 3: BTN S4 ToggleRadarOnOff
-
- A macro named "ToggleRadarOnOff" is called when button S4 on your F-22
- flight stick is pressed.
-
-
- Button modification commands provide additional versatility and
- functionality to your F-22 and/or TQS/WCS buttons and switches. They can
- be used to do anything from toggling a designated button between as many as
- 15 different macros, or performing one macro on the press of a button and
- another on the release. There are literally hundreds of different ways
- your buttons and switches can be configured.
-
- These commands are typically placed in your F22 files immediately after
- the Button Codes (i.e. BTN S1) and just before the Macro names.
-
- Additional Button Command Programming Information:
-
- Button Press & Release /P /R Commands
- PORTBx Command Analog Joystick Buttons
- BTN S3 In/Out Command /I /O Commands
- Rocker Switch Settings /U /M /D Commands
- /A Force Analog
- /T Toggle
- /N Force Single Character
- /H Hold
- TG1/TG2 F-22 Trigger
- TG FCS/PFCS/XL Trigger
- Combinational Keypresses
- Basic Rules For Using Slash Codes
-
- .TOPIC:
- /T
- Toggle Command: /T
-
- Using the /T toggle code in a BTN line will allow any combination of eight
- buttons to toggle between as many as 64 separate macros. This means that
- you may choose to use this toggle option on four F-22 buttons and four TQS
- or WCS buttons, or have six toggling buttons on the TQS or WCS and two on
- the F-22, and vice versa, etc.
-
- Note - You can place toggle codes on Hat switches but you are limited to
- only two toggles per Hat position.
-
- Let's look at an example:
-
- BTN S2 /T Chaff
- /T Flare
- /T ScreamForHelp
-
- In this example BTN S2 (button #2) is using the toggle option. When
- button #2 is pressed it will toggle through "Chaff", "Flare", and
- "ScreamForHelp".
-
- Basically, if you use more than two toggle commands, the button or switch
- programmed with toggles will cycle through the toggles sequentially. When
- the last macro has been toggled, it will begin the sequence again,
- starting with the first macro.
-
- .TOPIC:
- Button Press & Release
- Button Press & Release Commands (/P and /R):
-
- The button press command (/P) is used to indicate that the specified
- keypress or macro which follows is to be generated upon the press of the
- button or switch. The /P command is designed to be used in conjunction
- with the /R command.
-
- For example:
-
- BTN S2 /P Chaff
- /R Flare
-
- In this example BTN S2 (button #2) is using the press and release option.
- When this file is downloaded to the F-22 button #2 will generate the Chaff
- macro when pressed, and the Flare macro when released. When using the
- press and release commands remember to include both the /P and /R and
- their respective definitions.
-
- .TOPIC:
- /N
- Force Single Character Code Command: /N
-
- Using the /N command in a button or switch line forces the macro defined
- character to generate only once per press of this button.
-
- For example:
-
- BTN S2 /N FireMissles
-
- In this example BTN S2 (button #2) is using the /N option. You should
- recognize that the "FireMissles" has been defined in the adjoining M22
- file. Let's say "FireMissles" is defined as an "X". Normally, without
- the /N option, button S2 would generate "X's" as long as button 2 was held
- down. With the /N in the command line, button 2 would only generate one
- "X" per press. This is what we mean by forcing single character
- generation.
-
- If you're using a Mark II WCS with the F-22 you will notice that T7
- (rocker up) and T8 (rocker down) usually use the /N code. This is because
- the rocker switch is actually seen as a button device. When you move the
- rocker switch up, it is interpreted as pressing a button and holding it.
- When you return the rocker switch to the middle position it is seen as
- releasing the button. Therefore, when you put the rocker in the up or
- down position it will generate repeating characters until the rocker is
- returned to the middle. To eliminate this potential problem, the /N
- option is used.
-
- By now you should have a pretty good feel for placing the configuring
- codes. With the /N command there are a few do's and don'ts. Don't use it
- unless you have to - it uses up valuable memory. Also, it cannot be used
- with the Hat Middle positions.
-
- .TOPIC:
- BTN S3 In/Out Command
- Button S3 In/Out Command (/I and /O):
-
- The S3 In/Out codes relate to a specific hardware design enhancement
- within the F-22 and FLCS sticks.
-
- When the S3 button is held in (pressed) all buttons and switches using the
- /I and /O designation will perform a different set of functions. When the
- S3 button is released the designated buttons and switches will return to
- their standard functions.
-
- The codes are /I and /O. The /I code indicates that the macro which
- follows is to be performed when the S3 button is pressed and held. The
- /O code indicates that the macro which follows is to be performed when the
- S3 button is in the out position (not pressed). This In/Out capability
- will only occur when the buttons and switches use the /I and /O codes.
-
- For example:
-
- BTN S2 /I DropBombs
- /O FireMissles
-
- In this example button S2 would perform "DropBombs" when the S3 button is
- pressed and held. When button S3 is not engaged button S2 will perform
- "FireMissles".
-
- All buttons and switches can be programmed to take advantage of this
- option, except for the S3 switch itself, which does the In/Out toggling.
- Remember, when using this option, whatever functions you program to the
- BTN S3 line will be performed in addition to the switching function. We
- advise when using the In/Out function that you keep things simple, and not
- program anything to the BTN S3 line.
-
- .TOPIC:
- Rocker Switch Settings
- Mark II Throttle Rocker Switch Commands: /U, /M and /D
- TQS Dogfight (T7/T8) Switch Commands: /U, /M, and /D
-
- The /U, /M, and /D codes are available in conjunction with use of the
- rocker switch on the Mark II WCS throttle or the Dogfight switch (T7/T8)
- on the F-16 TQS.
-
- These codes can be used to modify all the buttons and switches on the WCS
- and F-22 to different sets of commands depending upon the position of the
- three-way rocker switch on the handle of the WCS or the Dogfight switch
- on the TQS.
-
- For example:
-
- BTN S1 /U AirAirRadar
- /M NavRadar
- /D GroundRadar
-
- In this example BTN S1 (button #1 on the F-22) would generate
- "AirAirRadar" when button #1 was pressed when the three-way rocker
- switch on the WCS handle was in the upper position or the Dogfight
- switch on the TQS was in the T7 positon. "NavRadar" would be
- generated when button #1 is pressed and the three-way rocker switch on
- the WCS or the Dogfight switch on the TQS was in the middle position.
- And finally, when the three-way rocker switch on the WCS was in the down
- position or the Dogfight switch on the TQS was in the T8 position, button
- #1 would generate "GroundRadar".
-
- .TOPIC:
- /H
- Hold Button Command: /H
-
- In some circumstances, it is necessary to hold the key down even when
- other buttons are pressed. The most common examples are keys that move
- control surfaces, and situations that require multiple keys to be held to
- achieve a particular view. For instance, suppose you wanted to program a
- hat to control the rudders. You might try (assuming 'l' and 'r' are the
- left and right rudder keys respectively)
-
- BTN H1L l
- BTN H1R r
-
- This would activate the rudders, but because of the way the repeating keys
- operate on the F-22, as soon as you pushed another button the rudder would
- return to it's neutral position. The use of the /H code would get around
- the problem, since it does not generate a 'Break' until the Hat is
- released. The coding would look like this:
-
- BTN H1L /H l
- BTN H1R /H r
-
- The /H codes are also slightly different in the way they appear on the
- screen. There is only a single 'Make' code generated, so you only see one
- character when you press the button. The PC will see the key as held,
- however, and in situations where the /H is required, the absence of the
- repeated 'Make' codes is of no consequence. The game will be looking only
- at the first 'Make' code in such situations, anyway.
-
- Holding down multiple keys is simply a matter of adding them to the list.
- To hold down KP8 and KP5 for a combinational view, the program would look
- like this:
-
- BTN H1U /H KP8 KP5
-
- When the button was pressed, the sequence generated would be:
-
- +KP8 +KP5
-
- and when the button was released, the sequence would be:
-
- -KP8 -KP5
-
- Any characters generated by other buttons while H1U was held would be
- sent normally,
-
- While /H codes are very useful, they are not without a few problems.
- First, as mentioned earlier in the discussion of repeating keys, it's
- generally not possible to use them for anything other than unmodified
- keys. The use of upper-case, SHF, ALT or CTL modifiers creates problems in
- that the PC will apply those modifiers to all characters transmitted while
- the /H is held down, i.e.
-
- BTN S1 /H A
-
- will upper-case all keys transmitted while S1 is pressed. Consequently,
- the use of such modifiers must generally be avoided in /H groups.
-
- A second limitation placed on /H groups is that they cannot be used with
- the /I and /O, or the /U, /M, and /D modifiers. The reason for this is not
- immediately obvious, but to have allowed them to be used there would
- create a strong likelihood of 'stuck' keys during operation. Consider the
- following example:
-
- BTN S1 /O /H a
- /I /H b
-
- Now suppose that during game play, you were to press S1, then press S3,
- then release S1. Since S3 was not pressed initially, the /O side of the
- definition would be in control. The initial press of S1 would send the
- 'Make' code for the 'a' as expected. When S3 was pressed, that would put
- the /I side of the definition in control. Subsequently releasing S1 would
- result in the 'Break' break code for the 'b' being sent. The sequence at
- the PC would be: +a -b
-
- The PC has seen the 'a' pressed, but never sees it released, so it will
- consider it to be still pressed. The key is 'stuck', and will remain that
- way until a 'Break' for the 'a' is sent, either by hitting the 'a' on the
- keyboard, or sending a complete 'a' with the F-22. It may remain stuck
- even if you exit the game.
-
- The limitation on the /I, /O, /U, /M and /D codes can be overcome in a
- couple of ways. One is simply to come up with a scheme that doesn't need
- them. The use of the /I and /O codes with held characters most commonly
- shows up in view switching situations. One method that works in some
- situations is to just use unmodified views on the hat, then add the
- modifier key to button S3. For example, suppose that the four basic views
- are KP8, KP6, KP2, and KP4. Also assume that adding KP5 to these four will
- add the UP modifier, and that adding KP0 to them will add the DOWN
- modifier, i.e. KP4 is Look Left and KP4 + KP5 is Look Up and Left. In that
- case, a setup like this:
-
- BTN H1U /H KP8 rem Look Up
- BTN H1L /H KP4 rem Look Left
- BTN H1D /H KP2 rem Look Back
- BTN H1R /H KP6 rem Look Right
-
- BTN S3 /H KP5 rem Add UP Modifier
- BTN S4 /H KP0 rem Add DOWN Modifier
-
- may prove workable, giving 12 views via combinations of the hat and the S3
- and S4 keys.
-
- If no suitable arrangement can be found using the standard keys, it is
- possible to generate held keys within /I-/O and /U-/M-/D groups using the
- RAW function.
-
- .TOPIC:
- /A
- Force Analog Mode Command: /A
-
- The /A command is no longer necessary with the F-22. Joystick analog
- button support for the F-22 is handled using the PORTBx Command.
-
- Four of the buttons on the FLCS can be used as either analog devices,
- digital devices, or both. This means that in the analog mode they will
- run through the game card and function as your game software has
- designated. In the digital mode these buttons will function through the
- keyboard, and will operate as you have designated in the FLCS file. By
- using the /A command the buttons can do both at the same time. The buttons
- that have this capability are the S2, S3, S4, and TG1. Whether these
- buttons operate in Analog, Digital, or both depends upon how the BTN line
- is defined.
-
- Normally a BTN line for switch S2 might look like -
-
- BTN S2 CloakingEngaged
-
- Using the following options in your FLCS file will have the following
- effect:
-
- Delete the entire line = Analog only
- Place a REM statement before the line = Analog only
- Include BTN statement with definition = Digital only
- Include BTN statement but no definition = No Digital or Analog
- Include BTN statement with /A and definition = Digital and Analog
- Include BTN statement with /A and no definition = Analog only
-
-
- Now let's review.
-
- If you left the BTN S2 line completely out of your FLCS file or REM'ed it
- out, that switch will only function as an Analog device. It will then
- perform whatever the game software designates.
-
- If you left the button code line BTN S2 in you FLCS file there are two
- possible choices. If you do not define BTN S2 with a macro, the button
- will not function as either an Analog or Digital device. In essence it
- will not work at all. We do not recommend using this option for obvious
- reasons.
-
- If you do define the BTN S2 line with a macro, as we did with
- "CloakingEngaged", the button will function as a Digital device only. The
- third option is to use the /A command. This command is designed to be
- used in the following manner. By placing this command following the BTN
- S2 statement and then following it with a macro definition, this button
- becomes both Digital and Analog. This means that when BTN S2 is pressed
- it will function as the game software designed AND as you programmed in
- your FLCS file.
-
- And one final note, if you use the /A command in your FLCS without a
- definition the button or switch will function as an Analog device only.
- You should not use this method if you are trying to achieve the Analog
- function.
-
- .TOPIC:
- BASIC RULES FOR USING SLASH CODES
-
- There are a few basic rules to follow when using forward slash codes (/).
-
- 1 - They must be placed after the button and switch codes (i.e. BTN
- S2 /H MacroName)
-
- 2 - There must be a single space before and after the forward slash
- codes (see preceding example)
-
- 3 - They must appear in a specific order when more than one type is
- used for one button or switch (see "Slash Code Hierarchy" below).
-
-
- SLASH CODE HIERARCHY
- When using multiple slash codes for configuring a button or switch it is
- important to use the correct hierarchy. The ordering of slash codes
- would proceed as defined
-
- 1 - The /U /M /D would precede all other slash codes.
-
- 2 - The Force Analog (/A) command precedes /I, /O, /T, /P, & /R.
-
- 3 - The In/Out (/I and /O) command precedes /T and /P/R commands.
-
- 4 - The Toggle (/T) command precedes /P/R commands.
-
- 5 - The Press and Release (/P and /R) commands are always last.
-
- The following is an example:
-
- BTN S2 /U /A /I /T /P (MacroName{s})
- /R (MacroName{s})
- /T /P (MacroName{s})
- /R (MacroName{s})
- /O /T /P (MacroName{s})
- /R (MacroName{s})
- /T /P (MacroName{s})
- /R (MacroName{s})
- /M /A /I /T /P (MacroName{s})
- /R (MacroName{s})
- /T /P (MacroName{s})
- /R (MacroName{s})
- /O /T /P (MacroName{s})
- /R (MacroName{s})
- /T /P (MacroName{s})
- /R (MacroName{s})
- /D /A /I /T /P (MacroName{s})
- /R (MacroName{s})
- /T /P (MacroName{s})
- /R (MacroName{s})
- /O /T /P (MacroName{s})
- /R (MacroName{s})
- /T /P (MacroName{s})
- /R (MacroName{s})
-
- It is important to note the sequence or hierarchy when using multiple
- slash codes in a F22 file. You must strictly adhere to the order
- described above or you will experience problems when saving your files.
-
-
- .TOPIC:
- SWAPTG
- Swap Trigger Command: SWAPTG
-
- The swap trigger option allows the default trigger setup to be swapped.
- Normally TG1 (trigger position #1) is the first click encountered when
- squeezing the trigger. TG1, by default is an analog button so you do not
- need to use /A with that command. TG2 is the second click. By using the
- SWAPTG statement you can reverse the two positions, making TG1 the second
- click and TG2 the first.
-
- To use the SWAPTG command just place the command SWAPTG on its own line
- near the top of your program (F22 or B50) file.
-
- See also TG1/TG2
-
- .TOPIC:
- TG1/TG2
- Command: BTN TG1 KeyPress or MacroName ...OR...
- BTN TG2 KeyPress or MacroName
-
- Device: F-22 and FLCS
-
- BTN TG1 (trigger position #1) is activated by squeezing the red trigger on
- the F-22 or FLCS until you hear or feel the first "click". This button is
- designed to behave like the normal analog trigger press on any 2-axis
- flight stick device. There are 3 ways to achieve standard analog
- operation from your trigger:
-
- 1) Omit the BTN TG1 line from your program (F22 or B50) file.
- 2) Place a REM statement in front of the BTN TG1 line.
- 3) Add the /A (analog) switch to your BTN TG1 line, i.e., BTN TG1 /A
-
- If you decide to use your trigger as a digital device instead, i.e., you
- would like it to generate a certain keypress or series of keystrokes when
- pressed, then add the BTN TG1 KeyPress or MacroName command to your
- program file. For example, let's say that your guns are fired by pressing
- key "g" on your keyboard. You can program this to your F-22 trigger as
- follows:
-
- BTN TG1 g
-
- If you press your trigger fully down, you'll hear and feel a second
- "click" as you pass the second detent position. This is the second stage
- trigger position, or BTN TG2. Some simulations provide separate commands
- for machine gun and cannon fire. For example, Warbirds uses normal analog
- trigger for machine gun fire and key "b" to fire your secondary weapon
- (usually cannons). Both machine gun and cannon fire can be programmed
- to your TG1 and TG2 positions as follows:
-
- BTN TG1 /A (FLCS line) or PortB1 IS TG1 (F-22 line)
- BTN TG2 /H b
-
- The /H (hold) modifier is used to ensure that the cannons will continue to
- fire when the trigger is fully depressed even when other characters are
- being generated (e.g., you might be lowering flaps to tighten your turn in
- a slow speed dogfight).
-
- See also SWAPTG command.
-
- .TOPIC:
- Introduction
- Introduction:
-
- See also Keyboard Input
-
- Most games and simulations require typing in commands at the keyboard,
- using a joystick, or a combination of joystick movement and keyboard
- entry. ThrustMaster products eliminate much (if not all) of the keyboard
- entry chores by having keystrokes assigned to particular switches,
- buttons, and knobs. This is why your ThrustMaster throttle or joystick is
- plugged into the keyboard connector on your computer - the computer "sees"
- commands being typed from what it thinks is the keyboard.
-
- Your throttle and joystick controls are "programmed" as to what
- information to send a game or simulation through a series of statements
- contained in download files. This information resides in the controls
- until another group of instructions is downloaded to replace them (the
- instructions are NOT lost when the computer is powered down). Take the
- time to look at an instruction, or program file (.F22 or .B50 file
- extension) to familiarize yourself with the way the statements look.
-
- .TOPIC:
- Combinational Keypresses
-
- See also Keyboard Input BTN Command
-
- Generating single keypresses or strings of single keypresses with the F-22
- is a straightforward process. The desired characters are simply listed in
- the BTN statement. There are several situations, though, that require that
- multiple keys be pressed simultaneously, and these can create problems.
- The correct programming method is often not clear as it depends on how the
- game processes the keystrokes. This section will attempt to explain the
- different techniques available and when these techniques should be used.
-
- SHF, ALT, and CTL
- -----------------
-
- The most common form of simultaneous keypress is when it is necessary to
- generate a modified key like CTRL-C, ALT-J, or even 'A', since the
- upper-cased character implies that the SHF key is held down while the key
- is pressed. It is generally a simple matter to program these combinations
- with the F-22, you simply precede the character with the appropriate
- modifier:
-
- BTN S1 CTL c
-
- Any time you specify an upper-case character, the F-22 generates the
- SHF code for you, so;
-
- BTN S1 A
-
- is actually treated as:
-
- BTN S1 SHF a
-
- and the key sequence generated is:
-
- +SHF +a -SHF -a
-
- It is worth noting that only the SHF, CTL, and ALT keywords are treated as
- modifiers. The variations that specify particular keys, such as LALT and
- RSFT are treated as regular keys. So if you program something like: BTN S1
- LALT j the sequence that is generated is:
-
- +LALT -LALT +j -j
-
- and an actual ALT-J combination does not occur. Programming it as:
-
- BTN S1 ALT j
-
- produces the desired:
-
- +ALT +j -ALT -j
-
- Simultaneous Groups
- -------------------
-
- As noted in the F-22 manual, if you enclose a set of characters in 'curly
- brackets' it causes the ordering of 'Make' and 'Break' codes to be
- modified so that the keys in the group are pressed simultaneously:
-
- BTN S1 {a b c}
-
- will send the sequence:
- +a +b +c -a -b -c
-
-
- This function is useful when two or more keys need to be pressed at the
- same time, but it does not hold the keys down for any appreciable length
- of time. They are pressed and then immediately released. The simultaneous
- group is also useful where a game requires a particular SHF or ALT key to
- be used. The normal SHF, ALT, and CTL modifiers always use the codes for
- the Left key, i.e. LSFT. If you needed 'Right Shift x' you could program
- it as:
-
- BTN S1 {RSFT x}
-
- and force the use of the Right Shift key. The generated sequence would
- be:
- +RSFT +x -RSFT -x
-
-
- Repeating Keypresses
- --------------------
-
- It frequently becomes necessary in F-22 programming to generate keys that
- are 'held down' to achieve some particular function. Normally this can be
- done by just specifying a single character as a repeating key:
-
- BTN S1 a
-
- This generates a sequence of multiple 'Make' codes while the button is
- held down, and generates a single 'Break' code when the button is
- released.
-
- This is essentially what the keyboard does, but there is one fundamental
- difference. When another button is pressed and the F-22 sends another
- character, the F-22 will send a 'Break' code for the repeating character,
- even if the button (S1 in this example) is still held down. The keyboard
- does not send the 'Break' code until the key is released. For example, if
- you programmed: BTN S1 a BTN S2 b then pressed S1, pressed S2, released
- S2, and then released S1, the F-22 would generate something like:
-
- +a +a +a +a -a +b +b +b +b -b
-
- whereas if you did the same thing on the keyboard using the actual 'a' and
- 'b' keys, the sequence would look like this:
-
- +a +a +a +a +b +b +b +b -b -a
-
- The F-22 was coded this way on purpose. When you're using the keyboard,
- you are generally aware of which keys you've got pressed at any particular
- time, and inappropriate combinations don't occur very often. When you're
- using the F-22, it's not always apparent what keys you are pressing. For
- example, look at the program segment:
-
- BTN S1 A
- BTN S2 b
-
- If the F-22 actually emulated the keyboard, the generated sequence would
- be:
- +SHF +a +a +a +a +b +b +b +b -b -SHF -a
-
- if you pressed them in the order outlined for the first example. If you
- looked at this on the screen, you would see 'AAAABBBB', rather than the
- 'AAAAbbbb' that you would expect, since the SHF key has not been released.
- Forcing the 'Break' when S2 is pressed changes the sequence to:
-
- +SHF +a +a +a +a -SHF -a +b +b +b +b -b
-
- which is more in keeping with the intent of the program. This is a fairly
- simple example, worse problems could occur. If S1 were defined as 'ALT a',
- then so long as S1 were held, the PC would see every key coming at it as
- having the ALT modifier added, i.e. you'd not only get 'ALT a' like you
- wanted, you'd get 'ALT b', too, since the ALT would still be down from the
- S1 press. Disastrous combinations could occur, consider what might happen
- if a program contained something like:
-
- BTN S1 CTL a
- BTN S2 ALT j
- BTN S3 DEL
-
- and all three buttons were pushed. The PC would see a simultaneous press
- of CTL-ALT-DEL, and would likely reboot. Probably not exactly what you
- wanted to happen.
-
-
- .TOPIC:
- RAW
- RAW Data Codes
-
- RAW data codes allow you complete control over what the F-22 sends to the
- PC. You specify the actual codes sent to the PC by their hex values. There
- are no real limits placed on the use of RAW codes, they can be used within
- the /I-/O and /U-/M-/D groups, and so you can generate any key sequence
- that you want to. A complete listing of the RAW sequences for the 'Make'
- and 'Break' codes on the 101-Key Keyboard is listed at the end of this
- note.
-
- The RAW data function was designed for situations where the normal F-22
- functions would not handle the task at hand. The most common use of them
- is to generate the so-called 'non-native' keys that the F-22 will not
- normally transmit. If you look over the RAW codes chart, you'll see that
- the majority of keys send a single RAW code for a 'Make', and send the
- value '#F0' followed by that same RAW code for the 'Break'. These are the
- 'native' keys, and they correspond roughly to the keys on the older 84-Key
- AT keyboards. The other 'non-native' keys are primarily associated with
- the 101-Key Keyboard, and usually have an extra '#E0' added to the
- sequence. These keys include the auxiliary 'T-Cursor' pad and the other
- keys in the section of the 101-Key Keyboard between the main keys and the
- numeric pad.
-
- The other primary use of the RAW codes is to generate key combinations
- that cannot normally be generated by the F-22, such as the use of held
- characters within /I-/O and /U-/M-/D Groups. The basic method for
- simulating a /H group is to generate a /P-/R set with the 'Make' codes on
- the /P side and the 'Break' codes on the /R side. For instance:
-
- BTN S1 /P RAW(#1C)
- /R RAW(#F0 #1C)
-
- produces the same output as:
-
- BTN S1 /H a
-
- with the 'Make' code sent when the button is pressed and the 'Break' code
- being sent when it's released.
-
- As mentioned earlier, using RAW codes within the /I-/O and /U-/M-/D groups
- is permitted, but it does not get around the basic problem with the
- 'stuck' keys. You have to set the programming up so that the problem does
- not occur. The usual method is to include the 'Make' codes for a single
- function on the /P side, and to include the 'Break' codes for all possible
- functions on the /R side. This is generally possible since multiple 'Make'
- codes for a key generally do no harm, and 'Break' codes for keys that have
- not been 'Made' are generally ignored. For example. the program segment:
-
- BTN H1U /O /H f g
- /I /H KP5 KP8
-
- would not compile, but the equivalent:
-
- BTN H1U /O /P RAW(#2B #34) rem Make 'f' and 'g'
- /R RAW(#F0 #2B #F0 #34) rem Break f, g
- /I /P RAW(#73 #75) rem Make KP5 and KP8
- /R RAW(#F0 #73 #F0 #75) rem Break KP5 & KP8
-
- would compile just fine. This does not avoid the stuck key problem though.
- You need to 'Break' both possibilities on both sides, even though you will
- only 'Make' one of the codes:
-
- BTN H1U /O /P RAW(#2B #34) rem Make 'f' and 'g'
- /R RAW(#F0 #2B #F0 #34 #F0 #73 #F0 #75)
- rem Break f, g, KP5 & KP8
- /I /P RAW(#73 #75) rem Make KP5 and KP8
- /R RAW(#F0 #2B #F0 #34 #F0 #73 #F0 #75)
- rem Break f, g, KP5 & KP8
-
- One thing to watch for here is that all those RAW codes take some time to
- send, about 50% longer than a regular /H group. The best thing to do is to
- set the RATE parameter down to 0, increase it only if you experience
- problems with the game in question. Most of the games will work just fine
- with a RATE of 0, the exceptions are games that only handle 1 key stroke
- per frame.
-
- Keyboard Chart
- --------------
-
- The following chart shows the 'Make' and 'Break' for the keys on the
- standard 101-key keyboard. These are the codes necessary to use the RAW
- function in F-22 programming.
-
- The keyboard modifies certain of the 'non-native' key code sequences
- depending on the Shift and NumLock states. These additions can normally be
- ignored when programming the F-22 and the normal non-shifted sequence
- used.
-
- -----------------------------------------------------------------------------
-
- *** STANDARD 101-KEY KEYBOARD SCAN CODE SEQUENCES ***
- For Use with the F-22 'RAW' Programming Function
-
- ** Main Keyboard **
- ----------------------------------------------------------------------------
- Key Make Code Break Code Notes
- ----------------------------------------------------------------------------
- ` #0E #F0 #0E
- 1 #16 #F0 #16
- 2 #1E #F0 #1E
- 3 #26 #F0 #26
- 4 #25 #F0 #25
- 5 #2E #F0 #2E
- 6 #36 #F0 #36
- 7 #3D #F0 #3D
- 8 #3E #F0 #3E
- 9 #46 #F0 #46
- 0 #45 #F0 #45
- - #4E #F0 #4E
- = #55 #F0 #55
- Backspace #66 #F0 #66
-
- Tab #0D #F0 #0D
- Q #15 #F0 #15
- W #1D #F0 #1D
- E #24 #F0 #24
- R #2D #F0 #2D
- T #2C #F0 #2C
- Y #35 #F0 #35
- U #3C #F0 #3C
- I #43 #F0 #43
- O #44 #F0 #44
- P #4D #F0 #4D
- [ #54 #F0 #54
- ] #5B #F0 #5B
- \ #5D #F0 #5D
-
- Caps Lock #58 #F0 #58
- A #1C #F0 #1C
- S #1B #F0 #1B
- D #23 #F0 #23
- F #2B #F0 #2B
- G #34 #F0 #34
- H #33 #F0 #33
- J #3B #F0 #3B
- K #42 #F0 #42
- L #4B #F0 #4B
- ; #4C #F0 #4C
- ' #52 #F0 #52
- Enter #5A #F0 #5A
-
- Left Shift #12 #F0 #12
- Z #1A #F0 #1A
- X #22 #F0 #22
- C #21 #F0 #21
- V #2A #F0 #2A
- B #32 #F0 #32
- N #31 #F0 #31
- M #3A #F0 #3A
- , #41 #F0 #41
- . #49 #F0 #49
- / #4A #F0 #4A
- Right Shift #59 #F0 #59
-
- Left Ctrl #14 #F0 #14
- Left Alt #11 #F0 #11
- Space #29 #F0 #29
- Right Alt #E0 #11 #E0 #F0 #11
- Right Ctrl #E0 #14 #E0 #F0 #14
- ESC #76 #F0 #76
- ----------------------------------------------------------------------------
-
-
- ** Function Keys **
- ----------------------------------------------------------------------------
- Key Make Code Break Code Notes
- ----------------------------------------------------------------------------
- F1 #05 #F0 #05
- F2 #06 #F0 #06
- F3 #04 #F0 #04
- F4 #0C #F0 #0C
- F5 #03 #F0 #03
- F6 #0B #F0 #0B
- F7 #83 #F0 #83
- F8 #0A #F0 #0A
- F9 #01 #F0 #01
- F10 #09 #F0 #09
- F11 #78 #F0 #78
- F12 #07 #F0 #07
- ----------------------------------------------------------------------------
-
-
- ** Numeric Pad **
- ----------------------------------------------------------------------------
- Key Make Code Break Code Notes
- ----------------------------------------------------------------------------
- NumLok #77 #F0 #77
- KP- #7B #F0 #7B
- KP/ #E0 #4A #E0 #F0 #4A Notes 1, 2
- KP. #71 #F0 #71
- KP* #7C #F0 #7C
- KP+ #79 #F0 #79
- KPEnter #E0 #5A #E0 #F0 #5A
-
- KP0 #70 #F0 #70
- KP1 #69 #F0 #69
- KP2 #72 #F0 #72
- KP3 #7A #F0 #7A
- KP4 #6B #F0 #6B
- KP5 #73 #F0 #73
- KP6 #74 #F0 #74
- KP7 #6C #F0 #6C
- KP8 #75 #F0 #75
- KP9 #7D #F0 #7D
- ----------------------------------------------------------------------------
-
-
- ** Auxiliary Pads **
- ----------------------------------------------------------------------------
- Key Make Code Break Code Notes
- ----------------------------------------------------------------------------
- Ins #E0 #70 #E0 #F0 #70 Notes 1, 2, 3
- Home #E0 #6C #E0 #F0 #6C Notes 1, 2, 3
- Pg Up #E0 #7D #E0 #F0 #7D Notes 1, 2, 3
- Del #E0 #71 #E0 #F0 #71 Notes 1, 2, 3
- End #E0 #69 #E0 #F0 #69 Notes 1, 2, 3
- Pg Dn #E0 #7A #E0 #F0 #7A Notes 1, 2, 3
-
- Up Arrow #E0 #75 #E0 #F0 #75 Notes 1, 2, 3
- Left Arrow #E0 #6B #E0 #F0 #6B Notes 1, 2, 3
- Right Arrow #E0 #74 #E0 #F0 #74 Notes 1, 2, 3
- Down Arrow #E0 #72 #E0 #F0 #72 Notes 1, 2, 3
-
- PrtSc #E0 #12 #E0 #7C #E0 #F0 #7C #E0 #F0 #12
- Ctl-PrtSc #E0 #7C #E0 #F0 #7C
- Alt-PrtSc #84 #E0 #84
- ScrLk #7E #F0 #7E
- Pause #E1 #14 #77 #E1 #F0 #14 #77 None
- Ctrl-Break #E0 #7E #E0 #F0 #7E None
-
- ----------------------------------------------------------------------------
-
-
- ** Notes **
- ----------------------------------------------------------------------------
-
- Note 1
-
- If Left Shift is Down:
-
- Make Sequence - #E0 #F0 #12 #** #**
- Break Sequence _ #** #** #** #E0 #12
-
- Note 2
-
- If Right Shift is Down:
-
- Make Sequence - #E0 #F0 #59 #** #**
- Break Sequence - #** #** #** #E0 #59
-
- Note 3
-
- If Num Lock is On:
-
- Make Sequence - #E0 #12 #** #**
- Break Sequence - #** #** #** #E0 #F0 #12
-
- The '#** #**' entry represents the Make Code and the '#** #** #**' entry
- represents the Break Code specified for the character in the main chart
- and should be replaced with those sequences in actual use.
-
-
- Note: Raw Scan code examples for the ThrustMaster F-22/WCS II & F-22/TQS.
-
- Refer to the below - you can cut and paste these into your sims/games
- based on how the commands respond in that game or sim.
-
- Some games may require a simple press and release of the command to
- operate properly - the proper format for that is the examples of the press
- and release of the c command below.
-
- For those that only require a press and do not even look for a release,
- the second example would be all that is required.
-
- For the Extended keypad (aka the Grey Keys) such as INS, DEL, HOME, END,
- UAROW, DAROW, LAROW, & RAROW examples of those are given also. These may
- also be cut and pasted into your game or sim .F22 or .M22 file.
-
- Most of the examples shown may be used directly in the .F22 file in place
- of the keyboard key entered just to the right, after one space, of a
- button or hat command. For example, to enter a command to button S1 on the
- F-22 as a RAW scan code directly in the .F22 file simply do this:
-
- BTN S1 RAW (#21 #F0 #21) REM press & release of c key and it will work
- just as well as if you enter it into a .M22 file and give it a macro name
- like this:
-
- Keyc/P/R = RAW (#21 #F0 #21)
-
- And then enter this in the .F22 file:
-
- BTN S1 = Keyc/P/R
-
- You can do this with any key and ignore even using a .M22 if you wish,
- just enter the key next to the button or hat assignment and use any of the
- slash codes you need and the key or keys you need like this:
-
- BTN S1 /P /T a /T b /R /T c /T d REM Toggle a/c/b/d.
-
- and it will work fine. All that is needed is to leave out any MDEF file
- name.
-
- General tips for most sims or games:
-
- DO NOT USE FCLK (this is only needed for games that actually look for a
- keypress on one frame and a key release on a second frame. How to tell?
- For example, you program a SHF on a key to fire the guns and when you
- press the button that will fire the guns they fire and continue to fire
- until you hit a key on the keyboard or the guns empty out. This is an
- example of a 'stuck key' and the way around it is to try FCLK. Dynamix
- sims such as Aces of the Pacific have this type of problem due to the way
- the sim is programmed.
-
- USE RATE 0 (ZERO) FIRST - ALWAYS - why? Because your keys will be
- generated the fastest this way. If you then have problems where SOME keys
- are not releasing, or they will work the first time, but not the second
- time you press them, this is likely a RATE problem (i.e. the sim or game
- is spending more time generating graphics, etc than it is devoting to more
- mundane tasks like reading the keyboard buffer and is consequently missing
- some keys). If you encounter this - then try increasing the rate to 25,
- if the problem persists, try 50, and so on. These type of problems are
- always characterized by the 'some keys work the first time I press them
- but never again the second unless I press the key again on the keyboard' -
- unlike the 'stuck key example above where FCLK might help, this is caused
- by the programming simply missing the release because it is too busy doing
- other things and not reading the keyboard buffer as often as it should.
- I've seen this with a lot of Digital Integrations programs and Origins
- Wing Commander series because they are intensively graphic programs and
- need a lot of CPU time.
-
- The other characteristic of this type problem is that some keys will come
- thru and others will not but 'stuck keys' are not really happening, the
- program is just 'missing' seeing the press AND release because it's busy
- doing other things and you are furiously pressing buttons faster than it
- can keep up. With this - do the same - try a RATE of 25 first, then 50
- and so on until the keys do come thru satisfactorily.
-
- Examples of RAW scan codes:
-
- REM - c press and release RAW code format is always the press first - #21
- - and then the release - #F0 #21: RAW (#21 #F0 #21)
-
- REM - c press only:
- RAW (#21)
-
- REM - KP1 press and release:
- RAW (#69 #F0 #69)
-
- REM - KP1 press only:
- RAW (#69)
-
- REM - KP5 press and release:
- RAW (#73 #F0 #73)
-
- REM - Press RSFT dn + UAROW dn - Release RSFT up UAROW up:
- /P (RAW (#59 #E0 #75)) /R RAW (#F0 #59 #E0 #F0 #75)
-
- REM - Press RSFT dn + DAROW dn - Release RSFT up DAROW up:
- /P (RAW (#59 #E0 #72)) /R RAW (#F0 #59 #E0 #F0 #72)
-
- REM - Press RSFT dn + LAROW dn - Release RSFT up LAROW up:
- /P (RAW (#59 #E0 #6B)) /R RAW (#F0 #59 #E0 #F0 #6B)
-
- REM - Press RSFT dn + RAROW dn - Release RSFT up RAROW up:
- /P (RAW (#59 #E0 #74)) /R RAW (#F0 #59 #E0 #F0 #74)
-
- REM - Press CTL dn + UAROW dn - Release CTL up UAROW up:
- /P (RAW (#E0 #14 #E0 #75)) /R RAW (#E0 #F0 #14 #E0 #F0 #75)
-
- REM - Press CTL dn + DAROW dn - Release CTL up DAROW up:
- /P (RAW (#E0 #14 #E0 #72)) /R RAW (#E0 #F0 #59 #E0 #F0 #72)
-
- REM - Press CTL dn + RAROW dn - Release CTL up RAROW up:
- /P (RAW (#E0 #14 #E0 #74)) /R RAW (#E0 #F0 #59 #E0 #F0 #74)
-
- REM - Press CTL dn + LAROW dn - Release CTL up LAROW up:
- /P (RAW (#E0 #14 #E0 #6B)) /R RAW (#E0 #F0 #59 #E0 #F0 #6B)
-
- REM - INS press and release:
- RAW (#E0 #70 #E0 #F0 #70)
-
- REM - DEL press and release:
- RAW (#E0 #71 #E0 #F0 #71)
-
- REM - HOME press and release:
- RAW (#E0 #6C #E0 #F0 #6C)
-
- REM - END press and release:
- RAW (#E0 #69 #E0 #F0 #69)
-
- REM - PGUP press and release:
- RAW (#E0 #7D #E0 #F0 #7D)
-
- REM - PGDN press and release:
- RAW (#E0 #7A #E0 #F0 #7A)
-
- REM - PRTSC press and release:
- RAW (#E0 #12 #E0 #7C #E0 #F0 #7C #E0 #F0 #12)
-
- REM - PRTSC press only:
- RAW (#E0 #12 #E0 #7C)
-
- REM - CTL PRTSC press and release:
- RAW (#E0 #7C #E0 #F0 #7C)
-
- REM - ALT PRTSC press and release:
- RAW (#84 #E0 #84)
-
- REM - ALT PRTSC press only:
- RAW (#84)
-
- REM - PAUSE press or press and release (there really is no release, Pause,
- and Break are 'special' keys): RAW (#E1 #14 #77 #E1 #F0 #14 #77)
-
- REM - CTL BRK press or press and release: RAW (#E0 #7E #E0 #F0 #7E)
-
- NOTE: You can find all the above and even more information on handling RAW
- scan codes and how to get around 'difficult situations' created by
- 'creative' programmers by downloading the file AN0001.ZIP or AN0001.TXT
- from ThrustMaster's WEB page (Tech Support - PC - File Lib - Utilities) at
- http://www.thrustmaster.com. The file is also available in the GAMDPUB -
- ThrustMaster Forum Library on CompuServe Information Service, as well as
- other online services where ThrustMaster is active, such as AOL, DELPHI,
- ITI, etc. This file contains a complete listing of RAW scan code PRESS
- strings and RAW scan code RELEASE strings and how to use them as either a
- press only or a press and a release for every key on the keyboard.
-
- NOTE: You will never encounter a situation where you will need a RELEASE
- only command because a PRESS will always be called for first - so an
- attempt to download a file with a RELEASE only, whether a RAW scan code
- release or a /R release will generate an error by the complier when you
- attempt to download it.
-
- .TOPIC:
- Contacting ThrustMaster
-
- If you have problems with your F-22, please call ThrustMaster
- Technical support. Phone support is available Monday-Friday, 7:00 - 6:00
- PST at (503) 615-3201. See the listing below for email addresses and
- other on-line information.
-
- In order to better assist with your problem we ask that you gather as much
- information as you can before calling. Knowing the speed, make, and model
- of your computer system is very helpful information. If possible, try
- using the F-22 on another computer.
-
- The Service Department is available at (503) 615-3202.
- Note: All products being returned must have an RMA number issued by
- Service and Repair. Any product sent to ThrustMaster without an RMA number
- will be refused and returned to the sender.
-
- Online services
-
- Compuserve - GO GAMDPUB, 72662,2334
- America Online - ThrustMast
- GENIE - Thrust.dude
- Prodigy - GVRR37A
- Internet email - techsupp@thrustmaster.com and
- service@thrustmaster.com
- Web Site - http://www.thrustmaster.com
-
-
- General address and phone numbers
-
- ThrustMaster, Inc.
- 7175 NW Evergreen Parkway #400
- Hillsboro, OR 97124
-
- VOICE (503) 615-3200
- FAX (503) 615-3300
-
-